""" СТРОЧНЫЕ
"""

import xml.etree.ElementTree as etree

tree = etree.parse('s100000022433.xml')

root = tree.getroot()

for adv in root.findall('adv'): # только подузлы 'adv'
    for Description in adv.findall('Description'): # только подузлы 'Description'
        phone = []
        plus = ''
        for f_100000022442 in Description.findall('f_100000022442'): # только подузлы 'f_100000022442'
            phone.append(f_100000022442.attrib.get('f_100000022443', '')+
                f_100000022442.attrib.get('f_100000022444', ''))
            plus = f_100000022442.attrib.get('f_100000022445', '')
            Description.remove(f_100000022442)
        Description.append(etree.fromstring('<f_100000022442 f_100000022444="{}" f_100000022445="{}"/>'.format(','.join(phone), plus)))

tree.write('output.xml',encoding='cp1251')


"""
Работаем внутри узла Description
Для каждого дочернего узла f_100000022442:
 нужно склеить f_100000022443+f_100000022444 и добавить в переменую телефон
f_100000022445 добавить в переменную мыло.

Удалить все дочерние элементы (чтобы не рабираться сколько их)
добавить дочерний элемент ... с параметрами ...

вытаскиваем все атрибуты
"""

# f_100000022434  (Вакансия) --> f_100000000055
# f_100000022441 (Требования) --> f_100000000063 
""" f_100000022442 --> f_100000000064
    ЭЛЕМЕНТ Контактная информация. Может быть несколько элементов. На сайте только один.
    Необходимо слить в одиин.
# f_100000022443 (Код телефона) + f_100000022444 (Телефон) --> f_100000000066 
# f_100000022445 (Дополнительно) --> f_100000001900
 """

"""
<?xml version="1.0" encoding="windows-1251"?>

<!ENTITY % number "NMTOKEN">
<!ENTITY % date "NMTOKEN">
<!-- от/до: "__|от|до|сдельная|по ЕТС|дог." -->
<!ENTITY % f_100000022437 "(__|от|до|сдельная|по ЕТС|дог.)">
<!-- Валюта: "руб.|т.р.|у.е." -->
<!ENTITY % f_100000022439 "(руб.|т.р.|у.е.)">
<!-- %?: "|+%" -->
<!ENTITY % f_100000022440 "(empty_val|plssgnprcnt)">

<!-- корневой элемент -->
<!ELEMENT s100000022433 (file_id, adv+)>
<!-- Заголовок файла -->
<!ELEMENT file_id EMPTY>
<!ATTLIST file_id
	GUID CDATA #REQUIRED
	EXPORT_DATE %date; #IMPLIED>

<!-- Описание объявления -->
<!ELEMENT adv (Adv_blank_id?, Issue, Rubric, Format, Numbers?, Description)>
<!-- valid - дата создания объявления -->
<!ATTLIST adv
	valid %date; #IMPLIED>

<!-- код бланка при автоматическом экспорте -->
<!ELEMENT Adv_blank_id EMPTY>
<!ATTLIST Adv_blank_id
	code %number; #REQUIRED>

<!-- издание, в которое подается объявление -->
<!ELEMENT Issue EMPTY>
<!ATTLIST Issue
	code %number; #REQUIRED>

<!-- рубрика для размещения объявления (обязательно указание одного из атрибутов) -->
<!ELEMENT Rubric EMPTY>
<!ATTLIST Rubric
	code %number; #IMPLIED
	r_number %number; #IMPLIED>

<!-- формат, в котором должно выйти объявление в издании -->
<!ELEMENT Format EMPTY>
<!ATTLIST Format
	code %number; #REQUIRED>

<!-- номера выхода издания. Указываются либо перечислением через запятую,
либо диапазонами (т.е. 40-42,45 равносильно 40,41,42,45) -->
<!ELEMENT Numbers (#PCDATA)>

<!-- Содержание объявления -->
<!ELEMENT Description (f_100000022436, f_100000022442)>
<!-- 
f_100000022447 - Тип подателя
Значение из словаря <dict code=3>
f_100000022434 - Вакансия (обязательно)
Максимум 35 символов
f_100000022441 - Требования
f_100000022435 - Название предприятия
Максимум 50 символов
f_100000022448 - Адрес
Максимум 50 символов
f_100000022446 - Агентство
-->
<!ATTLIST Description
	f_100000022447 CDATA #IMPLIED
	f_100000022434 CDATA #REQUIRED
	f_100000022441 CDATA #IMPLIED
	f_100000022435 CDATA #IMPLIED
	f_100000022448 CDATA #IMPLIED
	f_100000022446 CDATA #IMPLIED>

<!-- Зарплата -->
<!ELEMENT f_100000022436 EMPTY>
<!--
f_100000022437 - от/до
f_100000022438 - Сумма
Максимум 5 символов
f_100000022439 - Валюта
f_100000022440 - %?
-->
<!ATTLIST f_100000022436
	f_100000022437 CDATA #IMPLIED
	f_100000022438 CDATA #IMPLIED
	f_100000022439 CDATA #IMPLIED
	f_100000022440 CDATA #IMPLIED>

<!-- Контактная информация (обязательно) -->
<!ELEMENT f_100000022442 EMPTY>
<!--
f_100000022443 - Код телефона
Максимум 6 символов
f_100000022444 - Телефон
Максимум 9 символов
f_100000022445 - Дополнительно
Максимум 80 символов
-->
<!ATTLIST f_100000022442
	f_100000022443 CDATA #IMPLIED
	f_100000022444 CDATA #IMPLIED
	f_100000022445 CDATA #IMPLIED>

"""
